package SecondeStage.Collection.Set;

import java.util.LinkedHashSet;
import java.util.Set;

public class LinkedHashSet_ {
    public static void main(String[] args) {
        // LinkedHashSet是HashSet的子类，LinkedHashSet的底层是一个LinkedHashMap，底层维护了一个数组+双向链表
        // LinkedHashSet根据元素的hashCode值来决定元素的存储位置，同时使用链表维护元素的次序，这使得元素看起来是以插入顺序保存的
        // LinkedHashSet不允许添加重复元素
        Set set =new LinkedHashSet();
        set.add(new String("AA"));
        set.add(456);
        set.add(456);
        set.add(123);
        set.add("hsp");
        // LinkedHashSet 元素的取出顺序和添加顺序一致
        System.out.println("set"+set);

        // LinkedHashSet 扩容机制：添加第一个元素时，直接将数组table扩容到16，存放的结点类型是 LinkedHashMap￥Entry
    }
}
